;; extends

; hide useless characters
(_ (";" @conceal (#set! conceal "")) .)
(for_statement initializer: (declaration (";" @punctuation.delimiter (#set! conceal ";")) .))
(for_statement ["(" ")"] @conceal (#set! conceal ""))

; prettier operators
("=" @operator (#set! conceal "≔"))
(assignment_expression operator: ("=" @operator (#set! conceal "←")))
("!" @operator (#set! conceal "¬"))
("!=" @operator (#set! conceal "≠"))
(binary_expression operator: ("&" @operator (#set! conceal "∩")))
(binary_expression operator: ("&&" @operator (#set! conceal "∧")))
(binary_expression operator: ("*" @operator (#set! conceal "⋅")))
("<<" @operator (#set! conceal "«"))
("<=" @operator (#set! conceal "≤"))
("==" @operator (#set! conceal "="))
(">=" @operator (#set! conceal "≥"))
(">>" @operator (#set! conceal "»"))
("^" @operator (#set! conceal "△"))
("|" @operator (#set! conceal "∪"))
("||" @operator (#set! conceal "∨"))
("->" @operator (#set! conceal "→"))
(pointer_declarator ("*" @type (#set! conceal "↑")))
(pointer_expression ("*" @operator (#set! conceal "↓")))
(pointer_expression ("&" @operator (#set! conceal "↑")))

; prettier constants
((true) @boolean (#set! conceal "✔"))
((false) @boolean (#set! conceal "✘"))

; prettier string escapes
((escape_sequence) @string.escape (#eq? @string.escape "\\n") (#set! conceal "⏎"))

; shorten annoying keywords
("const" @type.qualifier (#set! conceal "©"))
